程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8515|回复: 0
打印 上一主题 下一主题

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
  |; J8 y, Q' Q6 W, [( K1 K#include <linux/init.h>
( t4 T, B3 B& {8 w  V5 d1 j#include <linux/module.h>
  D. ~. w3 _2 Y#include <linux/kernel.h>  k( {" _* k* K3 E( v& P
#include <linux/types.h>
( W. I; T  k# Z# J) M5 p& F. b! K#include <linux/gpio.h>. s* O( N% ]# u/ d. j9 X
#include <linux/leds.h>
  F& S2 x8 t8 U1 F2 K0 z' H#include <linux/platform_device.h>7 j' U" v' O# [  p/ P& f4 K% o
  t5 w5 m* B3 e. v# {* t
#include <asm/mach-types.h>9 u' ^/ {* `5 a0 ^2 A1 Q% u
#include <asm/mach/arch.h>
: G; k) g( Z! z4 s3 F#include <mach/da8xx.h>
* r3 y) I9 A- D$ G- b#include <mach/mux.h>1 D  W7 W; k5 }! \' Q7 B

, X- t3 c# `  c3 `- g' _# R! L#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)1 T) F8 u- c* R3 T" ?2 _
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
( E( c0 }) _1 R1 z6 W: T#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
" {3 Z2 ?* |# g4 i7 f#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)( j6 W- f0 A: W" z/ I* D

$ P7 w6 Q5 X, b! M3 q1 Q/* assign the tl som board LED-GPIOs*/( A4 Q5 A' O4 u8 b) y6 R& \
static const short da850_evm_tl_user_led_pins[] = {) w9 B- `& _. k. J2 v, n5 o4 k5 B7 u
        /* These pins are definition at <mach/mux.h> file */
. m, _4 g- l) M& }% Q* `; _        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
: c! l4 B5 m2 x& b- E9 X        -1
" X5 l& _4 q1 c};
; \/ O# L8 p5 M) ?; H' \4 n/ t9 x; A$ R( w+ o7 j
static struct gpio_led da850_evm_tl_leds[] = {; S, _2 K3 i2 ?% C, L: s
        {: A0 G4 u5 y! y( B+ O  M0 E" d* e
                .active_low = 0,0 F0 X- X( A9 U" C$ a( W6 _# P
                .gpio = DA850_USER_LED0,
4 Y/ z7 `* u6 \' Z                .name = "user_led0",' C% i9 e/ b& Q1 A: z* P1 B
                .default_trigger = "default-on",
& W5 b. V! ], @! L8 }! w2 J; x) Z, [) R        },* g, l% X8 X1 |- ~+ {7 j$ w
        {+ W' w, r( `# s+ v6 [+ j% E" N
                .active_low = 0,: [1 T; F/ r2 j7 I; N
                .gpio = DA850_USER_LED1,2 l* x, z; G" |) k$ P
                .name = "user_led1"," K- S- t- [/ |* n6 S5 [% ^
                .default_trigger = "default-on",
$ \6 v& Y3 B2 k. k3 o        },
3 {( J$ I9 N1 r4 @/ m7 V3 p        {
& L/ h  z) _4 H6 ]' r8 Z                .active_low = 0,4 y- K+ d9 M& m& f0 n5 C7 y
                .gpio = DA850_USER_LED2,: K2 M. N) X" C* R- z
                .name = "user_led2",2 F5 _6 [+ b+ a3 b
                .default_trigger = "default-on",
3 j& n* ?1 Y  T3 w! b* K2 u; V        },
/ R' s% v2 N+ i/ y, n; x        {
% {- w3 Z5 s2 ~, U9 a4 g                .active_low = 0,7 N6 m; @0 `0 ~# E" |& V
                .gpio = DA850_USER_LED3,! n2 }' v5 N  [8 Q& |9 Z
                .name = "user_led3",5 ?9 ?/ @$ D! i& E$ d* |5 L
                .default_trigger = "default-on",7 [0 C' X2 h7 u) u9 Y- I8 ~; r' G
        },
  o) Q: d, s' V6 _9 A5 g1 f};( D0 s/ a& \3 I7 N' d- x
* a5 o4 P) r9 C( e
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {3 k; K4 r/ k) R1 |) m
        .leds = da850_evm_tl_leds,; g" v( I# v) c$ H+ M/ Q2 v
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
, p5 R8 G5 t% ^: g3 t( o1 s};  T7 m1 r" b+ w8 n

: ^1 b+ g- e  h7 e7 Ustatic void led_dev_release(struct device *dev)
3 B! `1 V$ p2 ?* n6 E{
& X5 I) v0 N5 e& H};
/ r% g% ?4 b* c
# v; S/ h* D7 C- e- Dstatic struct platform_device da850_evm_tl_leds_device = {
* l* ^* Y, L8 d- R        .name                = "leds-gpio",2 e8 i" X1 D/ Z% j5 a
        .id                = 1,
2 `7 `& n6 G; v' F! |. b# Y        .dev = {8 ~! ^# @" R  ?6 \" p
                .platform_data = &da850_evm_tl_leds_pdata,
/ D. M- @/ S4 B7 Y! t                .release = led_dev_release,
- H% Q/ Z6 ]8 B- a% J" g- d        }
# W- V! p9 h( Y& E& @/ E};
$ q9 q4 Z4 Y8 Q. ~
; B, ?% n$ f( {static int __init led_platform_init(void)- Y: F$ O3 `3 F( ?- u' @
{
" \) A& U3 U0 c# S% h4 y4 v        int ret;2 w/ t: h. r5 c( C8 }$ e: w
#if 0
/ D* C& W0 Y' i# ^        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
1 l/ @$ g6 D+ h! E        if (ret)  Y7 P1 u1 g: U% a
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
# D, R/ G/ ^& J3 k, _                                "%d\n", ret);1 g2 M' i( P3 O/ B
#endif" L* ~+ x6 P& @( ?4 _* [" m5 v( ?( e
        ret = platform_device_register(&da850_evm_tl_leds_device);
, ^: X9 Q0 e) D7 N. S        if (ret)
( t* Y7 i! ~6 t0 V" \3 y( r                pr_warning("Could not register som GPIO expander LEDS");$ p  q* s7 l3 ~( g, T% r1 o
        else
0 K4 _% h6 o8 j                printk(KERN_INFO "LED register sucessful!\n");
; c6 ~6 C9 f* @3 J* K) a4 E& i1 f% F$ ^% K7 N+ N* h  B- N
        return ret;
; ~: [9 G5 o! e0 E" c! |}
. k: J6 S  u' I- W; S5 T, J) e" Y, [+ j; t1 B9 X  X! ]
static void __exit led_platform_exit(void)6 o2 E& R: e4 d' ^6 k
{
1 u- I2 j' I' }3 U  P# a- @        platform_device_unregister(&da850_evm_tl_leds_device);
2 n4 ~" u0 N. E0 ]
  A  k* O' h1 _        printk(KERN_INFO "LED unregister!\n");
8 G8 I3 D! D+ V}% ~" |" `2 Z9 b
9 b$ E) d% i& J5 ?; b/ A; S
module_init(led_platform_init);7 f% S( G* T: j9 @6 v; Q
module_exit(led_platform_exit);
; ~# U+ e" g; H' S& X
$ |1 r; z8 A( z* n/ fMODULE_DESCRIPTION("Led platform driver");& z9 y: V5 H3 @" E
MODULE_AUTHOR("Tronlong");' G! I  ], ~' l' \4 N0 c! [1 M# ^$ c( G
MODULE_LICENSE("GPL");
1 c! M4 H' {8 D9 K4 [$ _' G
- N" m+ o6 N# g9 J. ]" z# f
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

点击跳转“创龙科技服务通”

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-1-27 10:57 , Processed in 0.038254 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表