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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。, r/ I! v1 _$ Y! y
#include <linux/init.h># p0 t9 N9 V& D. D) A
#include <linux/module.h>$ L* u' a* _1 C# G/ W. b, A
#include <linux/kernel.h>$ D! m) k+ Z" B5 I% s) _5 V5 d' L
#include <linux/types.h>( @' }% T  I, [
#include <linux/gpio.h>
: ?* r3 z- {5 |& h/ ?3 h5 F: h" {#include <linux/leds.h>
: S3 _* n" |. u$ S5 @! O+ z, g: I#include <linux/platform_device.h>$ I- U# u6 v0 L/ Y4 R1 C

9 I9 V7 A+ F3 l8 A' e$ t( i1 K#include <asm/mach-types.h>
( {& I) m* P# G" ^( r#include <asm/mach/arch.h>+ M+ K$ k( ?) ~' u* [* {# b
#include <mach/da8xx.h>* `6 G, }' `& `2 l9 {* x# p; b
#include <mach/mux.h>/ |' B1 `+ a. c( S* H

5 ]' X! ^6 @% b#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
& W; X' I9 W( |* \5 _#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)$ Z- w% M" P5 T( [
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
. I* n4 N; s1 e" c* l#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)  m: J! U) w. x" i) I
- n. g  k0 R0 E( ~6 Z" N/ V
/* assign the tl som board LED-GPIOs*/
9 B6 j# e* @9 r8 H. x. g2 [3 ?  Wstatic const short da850_evm_tl_user_led_pins[] = {
# v: u' u: B4 E        /* These pins are definition at <mach/mux.h> file */9 n& k+ ~& J* B$ T% ^% x
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,6 C2 h, U# J# r( [) v  S- d5 b' U
        -1
& M0 Z# B, D$ ^) `4 M3 X};! B4 I$ M( e$ @) r! l
  w" ]/ D: L6 m" M
static struct gpio_led da850_evm_tl_leds[] = {/ A3 s: l, w  @9 ]7 p  J# A
        {
0 E  }" `7 l3 E                .active_low = 0,- J# v, V: U6 Y
                .gpio = DA850_USER_LED0,! E" n. V6 k* q+ @  S9 U$ G8 [9 z
                .name = "user_led0",3 o( n% e3 s! Q  O/ o
                .default_trigger = "default-on",4 E5 A; o% I  h& X0 f9 G
        },
  C! |  H7 k7 M) U( F! F! Y5 D        {
8 ]0 H, W) e% {" Y1 ?, R                .active_low = 0,4 t! e4 z  p8 j, p% R# i) B
                .gpio = DA850_USER_LED1,5 S9 j$ `* Y% I% i2 k
                .name = "user_led1",
; }. N! E2 D5 f0 x                .default_trigger = "default-on",
* c* c& A. L6 g# e3 y$ a  M# M        },: _# ~3 Y- Y/ l: z/ `8 w4 [
        {
+ R. ?" n. [8 A3 I                .active_low = 0,6 Q$ {& T, W; p8 ?& H
                .gpio = DA850_USER_LED2,' w: \+ H) {' w0 `
                .name = "user_led2",
! e; B  S2 D5 ]8 _, Y  N5 v" f                .default_trigger = "default-on",
: [$ x& F. f; O2 }* W        },6 R% z, L; c- d9 ^$ B; ]
        {
2 b1 q; k1 |' P% [+ ^                .active_low = 0,
7 [* G* G) j5 a4 x  L! b  K                .gpio = DA850_USER_LED3,$ j* J! G! v; p
                .name = "user_led3",
; t) h, n* x2 y. y8 A                .default_trigger = "default-on",) _+ P' R3 U7 F/ b( q7 ^
        },
8 o" y- J5 ]: c: I" J* ?; N6 p};
3 o/ M* t7 m' w* p% ^' l3 y
% ]! \, b. {" P( ?1 q% Mstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {+ B  |6 [" h" |7 P1 E/ J7 w! t; Z
        .leds = da850_evm_tl_leds,
4 E9 m' s/ H: a. G3 |* U        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),1 R9 [& _% O/ z" i: x1 p4 S
};* I- Z  n3 f1 ?- v& u* c

) ?) W9 A2 v- k+ \8 o" c- v* |static void led_dev_release(struct device *dev)4 ^' Y1 c) g" }) y: t
{
/ c+ H: r! S: t( Q% Y, }: F1 c};
3 R3 `& J; K$ e+ q
& u  x) a5 e# q7 Q% [# |static struct platform_device da850_evm_tl_leds_device = {
/ X% ?3 L8 N6 ^  j" v        .name                = "leds-gpio",
( }3 E0 L3 w1 W% F/ Z* {        .id                = 1,' k2 Q# s8 r7 \/ M+ u3 O* T
        .dev = {
* z' s! F5 Y: h) R                .platform_data = &da850_evm_tl_leds_pdata,
- t1 {4 [* c$ E+ M! W                .release = led_dev_release,% q- H8 m9 R3 _* ~9 f. O" C1 H) K
        }, C% r. e, z/ Y6 K1 t
};
0 O' n5 U2 Y, S9 Z" Y, O. e- o! [  A5 J: j! [# ?2 d
static int __init led_platform_init(void)
! q: p8 T- I4 m" w8 a{9 o8 V) J! S" M1 `$ l8 h) }
        int ret;
; L( j( i; Y0 l- _: V( I! E; N#if 0
! J, {! Z" e* R/ P        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
5 f, G" f- q* n( b, W; U        if (ret)
4 ?" ^  ?/ t! X: \* H( V                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
5 `9 w8 G1 ]+ C$ a  {" `                                "%d\n", ret);
, o4 Z, }! A5 @& ]#endif% r" g1 v  C' N
        ret = platform_device_register(&da850_evm_tl_leds_device);2 g; C. j; d) _( q
        if (ret)/ O$ N  _5 s0 p" T$ _  P+ ^
                pr_warning("Could not register som GPIO expander LEDS");
9 F! \8 `5 K6 h* g+ S# ]+ i        else; ^+ ^5 P+ n9 |5 r% n
                printk(KERN_INFO "LED register sucessful!\n");
; U4 S' N+ V* N+ y6 a: Z' R$ D5 L9 F4 r, c# }5 h# p; h
        return ret;
9 T3 h! Y6 E( K& g* {# j}& I% X$ J0 J) F0 j

' i2 g9 y$ b2 W! W5 kstatic void __exit led_platform_exit(void)) y8 \- ^, I% x* {
{
3 z* H( Z# V' y0 D        platform_device_unregister(&da850_evm_tl_leds_device);
. y) {( b# N- I, W
" K9 k, u& t3 G# z9 |/ P) T        printk(KERN_INFO "LED unregister!\n");3 C8 i6 [0 ^& X- w# J( B$ k% P  |
}
( v0 ~# z6 x" Y' f8 C8 J, @3 R# q. j! V6 [) h( z
module_init(led_platform_init);0 R, r- X8 Q7 X, e
module_exit(led_platform_exit);
; P1 B. y5 x  `0 g! x# h& h
9 R9 L. k7 I# J! F- bMODULE_DESCRIPTION("Led platform driver");
# ^0 P( W: X0 L4 x- m  {MODULE_AUTHOR("Tronlong");  ^: M( d9 i+ h
MODULE_LICENSE("GPL");4 C' i; B+ s3 e
  {0 u! Y6 ]2 i/ D: B4 {% C
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-6 19:59 , Processed in 0.039933 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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