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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。  W3 I/ w! L" _' p1 L- i, b. {
#include <linux/init.h>
8 S% E4 H3 R  R$ q$ `& Z8 Z/ ?#include <linux/module.h>
( w* W/ I' D' p* V0 f* r" [0 v#include <linux/kernel.h>
; J7 O9 W3 g# q% G& D3 [: a#include <linux/types.h>/ G/ D$ R9 B0 `2 O- D; |
#include <linux/gpio.h>
, a3 Y- \4 Y3 K2 v/ l6 ]8 b7 _' G#include <linux/leds.h># M! Q! k- t& t, Q5 O
#include <linux/platform_device.h>
+ Q2 P2 l: w$ O9 u
9 W- ?$ e# v- S  S2 d" x$ Q  I#include <asm/mach-types.h>
9 x0 t8 [) i8 r; \* ^9 ]% n+ Z3 K#include <asm/mach/arch.h>! t3 O$ Y  h8 e3 Y
#include <mach/da8xx.h>
. G2 B, ]' P1 a( l1 d#include <mach/mux.h>
+ k6 J9 r" }& I, [/ B# z) {0 O
6 }" n4 j& ]8 G0 P3 O0 a' ?#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)% c. R6 v5 F; a* ]' C7 E2 n: J" P
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
2 K2 H9 \% L/ ~8 T! L#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)& Q1 K" S4 Y2 d2 F5 v& i  P
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)6 X+ a& \$ Q) L& Z

- m; e3 T$ k, X/ U5 _% }( @/* assign the tl som board LED-GPIOs*/
* S6 q1 u! ]- Zstatic const short da850_evm_tl_user_led_pins[] = {
" P* e& m$ W" k3 R0 I; l# ?. m. S        /* These pins are definition at <mach/mux.h> file */
  a- a5 v" z' e: D( S/ k! ]0 X8 H        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,( ]; E. T$ }+ {7 ?
        -10 b0 ]9 j; w$ o
};
- y6 o' ^+ g1 i, w( r6 Q9 r( S" ?% D9 e* ?8 t; d$ n
static struct gpio_led da850_evm_tl_leds[] = {
2 M! v8 z- H! N; _5 X/ V) _        {* x# B) q) B; |+ j
                .active_low = 0,1 Q1 R1 Y: }! R) |# x
                .gpio = DA850_USER_LED0," x1 W; [" O' E/ k
                .name = "user_led0",6 s" a7 ?# m7 e  l$ V
                .default_trigger = "default-on",
! F' h& W  W( E" C& |% h+ @        },, E- `* _) k0 X4 @2 M( j' C
        {
3 b# h. Y8 ~- F1 [" d8 @; P1 O                .active_low = 0,  h/ E+ P1 x" E. Q
                .gpio = DA850_USER_LED1,
) e) O; @( Y3 w" H% _  v                .name = "user_led1",
' {1 Q/ S6 ]" y3 L4 n4 R                .default_trigger = "default-on",6 P1 M- ]5 h7 C5 ~4 t
        },
3 V5 h7 W& ?0 ^: ^' |9 e$ A/ h        {
2 l8 i  o- J  p0 ^+ g                .active_low = 0,
8 c( R9 `0 l  ?% w: t+ _                .gpio = DA850_USER_LED2,
3 E( l4 w% Y' x; j- O                .name = "user_led2",
+ j% j; u, d- N7 D0 `" X. z6 v  G                .default_trigger = "default-on",1 W3 S6 n' k; p' J; M: r& ~( k
        },1 z3 [7 C1 y! i
        {& m- K% e. u" z, U
                .active_low = 0,
/ v: y' S0 M1 {$ J; o8 _6 ]                .gpio = DA850_USER_LED3,3 q4 Y! z  E6 H5 _1 A) @8 x
                .name = "user_led3",$ Z+ q4 k+ M) Y+ y- U! q4 M5 L& @
                .default_trigger = "default-on",4 L( t5 {  I* ]; w, G
        },
( h, c# }3 D% {5 K% s( |};
/ k$ w5 D: w& E! u* C% b
! P% Q/ ~  d$ A$ @+ }static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {% B( p) i& b- F* D4 B- n
        .leds = da850_evm_tl_leds,# l. s+ y5 d/ M) n+ {. ]/ w
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
! @- g5 k& }6 t" x6 E% S& Q9 s# N};
) h( U3 X) O% F! F
( c' }" k" h+ qstatic void led_dev_release(struct device *dev)
" W- Y! S9 q1 d0 ^" J# m{
2 m7 i5 I( S" Z1 {};8 P# j3 v3 D% Y8 t

3 I* p+ w. l  N. _- [2 U, vstatic struct platform_device da850_evm_tl_leds_device = {
& r6 W2 S% o1 K        .name                = "leds-gpio",
8 i. K8 x0 P! k9 ^0 ]* Q7 v        .id                = 1,
: W5 t( b: H- v( e        .dev = {
; U1 R* D. S" H                .platform_data = &da850_evm_tl_leds_pdata,
$ h+ V! {& ]# r6 g  x                .release = led_dev_release,
" ^, e0 }2 M* w9 P5 X        }
% `# M0 S/ H; i& h, T, ^0 e3 i};
* |0 @! T8 i1 Z- V% Q9 l( y& k! Q& W  }; S$ z  P& |4 b
static int __init led_platform_init(void)6 S" G* U* w. E- m3 _6 q) ~
{
$ S* I% {$ `2 ?9 o0 C        int ret;
0 i7 N0 M2 t' M& }  [- ?& }#if 0
4 y9 s4 Y2 i. Q& S; E9 A, [4 z        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);2 k) I3 m! N5 x/ J- \' p
        if (ret): p) f) a  [3 f  G5 _/ v7 Z
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
# B* t3 c8 z, l  A  b; F                                "%d\n", ret);, c: m8 i, K. d, t
#endif4 M3 L5 y- i0 U% v% c! O
        ret = platform_device_register(&da850_evm_tl_leds_device);
$ X& ]5 ?1 J5 h1 X' m' T        if (ret)9 j5 V. u! B: n" {6 \. o
                pr_warning("Could not register som GPIO expander LEDS");( j' z# W) e8 G% U) {8 N- P
        else5 o5 F) i0 f& c- z4 ?& j- [
                printk(KERN_INFO "LED register sucessful!\n");. K$ Y* H7 @6 c8 O! F  U3 A5 \

4 h- `2 I/ d9 e        return ret;
# E' z, Z; M- B0 F/ W1 b}2 ^: N* E" r2 b; r- X; }9 _& X2 C
+ [, [$ ~9 V( b' }5 \, @3 @: ]: N
static void __exit led_platform_exit(void)! q% Y% [! V' b4 o4 ^: W3 |& k
{. @3 V% }" P) P
        platform_device_unregister(&da850_evm_tl_leds_device);
4 Q( }$ T5 c5 P( a4 V9 k
3 F$ }6 S( [% g        printk(KERN_INFO "LED unregister!\n");8 ]' L: ]4 L6 b$ h* K
}3 r# v7 X$ D# X+ K" O! {3 w/ l

- \5 T; x9 a6 W4 Jmodule_init(led_platform_init);& T7 x+ a. I# ~1 U
module_exit(led_platform_exit);7 B8 o8 q8 E+ F+ s* f! b2 l* _% A
! y8 d. ?+ h/ o7 n+ V
MODULE_DESCRIPTION("Led platform driver");
" A! h, B: D2 P9 S9 p2 S7 g) NMODULE_AUTHOR("Tronlong");0 o& b3 r& y& L& C9 R
MODULE_LICENSE("GPL");
/ N, x3 `4 t/ U4 x: c- s) ]4 T+ g1 z* T. N0 N+ R# [3 N
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-24 23:48 , Processed in 0.038714 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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