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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。  ^1 H) `' y1 `
#include <linux/init.h>
0 U5 z$ w5 P' J/ N* n3 S#include <linux/module.h>1 g3 f3 S2 W+ H4 c) o
#include <linux/kernel.h>
& P. ~1 s4 Y; X9 y5 p: j#include <linux/types.h>
4 G1 t) L! A9 E5 ^9 z4 {/ \8 U#include <linux/gpio.h>
1 L4 Z- {. ]5 H: V: U#include <linux/leds.h>1 P1 R- f' O, u' l5 M/ ]$ V# ?! t2 ~
#include <linux/platform_device.h>0 u5 x# v* Z' Q9 Q" C5 R
& L! @. W( d( Q4 b5 v6 w+ i6 a
#include <asm/mach-types.h>/ @2 x& ~$ b2 b8 d; S  C7 X. D
#include <asm/mach/arch.h>" h8 ]& a/ w/ `
#include <mach/da8xx.h>
0 @2 O9 {: N+ T: U$ ]#include <mach/mux.h>9 v& [! J% w: b4 Q3 s
$ l! b3 I2 f0 ]# E" H6 m1 R  U4 l
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0): }# y6 l3 \0 w
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)7 g9 @; c3 }! w( ?! w
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
8 J/ Z& ^# g# s" p/ y- A#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
; Y7 t. f# \9 w- @# O
2 `6 x! X; Q$ W4 O/* assign the tl som board LED-GPIOs*/
4 @2 E& i- ~. C, B3 O+ z  Q& j. Lstatic const short da850_evm_tl_user_led_pins[] = {
) m% ]" w$ ]. V! t! {        /* These pins are definition at <mach/mux.h> file */
5 d& q# A$ i, I! e; g        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,! U4 F' }0 R1 J; A) s9 {
        -1
0 y# e+ H( e7 J! a0 i: `};
* G( U$ G* f4 Z6 N- h/ L
: M6 G6 s5 i( a# }. o2 Tstatic struct gpio_led da850_evm_tl_leds[] = {
8 N3 _% G3 n1 G# Y$ H9 l3 O        {4 A( F' _0 J" Y, O+ K
                .active_low = 0,
3 ]7 F/ p5 `5 w. w0 @- Y) @                .gpio = DA850_USER_LED0,0 W, g2 a! e7 K" s; Z+ @4 e$ @( I
                .name = "user_led0",+ E9 }& {) w# U9 n; }* G1 z$ Q
                .default_trigger = "default-on",
- _" q% Q& `7 _; x2 K        },% l6 x2 r5 O4 C( k
        {
* {' `. l* X. N2 w                .active_low = 0,
6 e' j0 s9 |7 R% b1 G                .gpio = DA850_USER_LED1," M2 _, _6 T$ `) h
                .name = "user_led1",9 F9 a$ v+ Q& l0 S+ n' w
                .default_trigger = "default-on",7 N8 m! G$ y7 f: y
        },. s+ M; Y* E: O
        {4 b  D; L6 [& `, s5 C
                .active_low = 0,
8 \8 ]( `, D0 a/ {6 |. ]7 D                .gpio = DA850_USER_LED2,
2 }+ P! H/ D; }6 m( P2 K: l                .name = "user_led2",9 i- _0 L, p# j$ g4 V2 L
                .default_trigger = "default-on",1 x* F% J; `: G
        },
) O7 w: D0 @! I. K; K- w- k        {1 T3 K* k+ D  _
                .active_low = 0,2 B: G2 R, j/ ^( h. ]# Z
                .gpio = DA850_USER_LED3,
" p$ \* |% e  f' d                .name = "user_led3",& j! q! [+ G1 o$ z4 R
                .default_trigger = "default-on",
' Q' y3 [* C, a# q        },
* c1 e4 E) Y+ x( R* W2 R' @: L};
0 M) s! I4 S8 H$ z# f' J7 U$ u9 S0 H2 a. }1 Y
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {" o+ z5 f  d! t- l  ^7 H$ b* B
        .leds = da850_evm_tl_leds,
- I! I8 i; H  D4 O8 ?. |( F        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
1 d* {5 x1 Y" `& w};
2 G) M- c) h/ c( S! g
0 N/ o# ]% U4 A( }: A" ^! ]static void led_dev_release(struct device *dev)! V* \2 w. \8 J, G, L5 y0 I" X
{& c9 c8 s- Q# H5 i, J
};
+ c* o" i, r  B* ?! f/ B1 w
6 c0 }, \& i; b; _" `5 M' |" }static struct platform_device da850_evm_tl_leds_device = {
5 \4 I4 @0 B8 d  F9 D) I3 J        .name                = "leds-gpio",% r5 V2 y5 k3 |$ L. a  ^1 H
        .id                = 1,
) P* a! ?# @( Y2 L# R- G        .dev = {4 E9 M* h( g) Y% ?
                .platform_data = &da850_evm_tl_leds_pdata,
8 @3 I% A% ~& B" M% C; H8 Q                .release = led_dev_release,
7 P7 |& N1 F* V* \# Z        }& ^( X: o2 O2 P1 ~) ~
};; T) k  `0 z1 s" @; Z# u' Y  ]

8 x  n; }7 [" c) a5 l& {3 r3 zstatic int __init led_platform_init(void)- e. B: c( M* l+ v5 ~9 p+ c; B
{
" L/ N) A2 `) |, z" `        int ret;
; j) V0 D( i2 K- ~9 l9 t9 |) ^#if 0, B" M) g& g* s% h" ^
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
* A! A0 ~# ~( `3 g: X8 @7 N        if (ret)
/ F7 f/ z2 n7 l6 R9 Z, s                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"1 ?, W% K1 q2 b6 ]
                                "%d\n", ret);
& _: z; H9 P  _4 s#endif
" W+ B/ w  _( ?" g+ @6 I9 B9 x        ret = platform_device_register(&da850_evm_tl_leds_device);' ?" a. Z4 p1 V: g& z' ~: M
        if (ret)4 ?4 r$ N9 @% d) ]+ Q5 r# i8 y. p
                pr_warning("Could not register som GPIO expander LEDS");
8 a" K% k! R0 p$ [+ E% K! J        else- B5 r7 W# E& y" j3 H: I/ F" U2 B8 q
                printk(KERN_INFO "LED register sucessful!\n");5 A+ y1 [. q& `8 X( Y7 h

5 A5 o; [$ |9 i        return ret;
( Q% e- R9 T7 f& h: Z' _}3 }# }; a) B) F% I# S
: ^; p( Y/ H- i" z. e* D
static void __exit led_platform_exit(void)* ]( R$ ?; u0 h
{/ c- V# }' }  ~4 {/ l& J
        platform_device_unregister(&da850_evm_tl_leds_device);
8 |3 n& k' L$ e7 V( F- d8 s2 f- D. _4 u7 Q" g
        printk(KERN_INFO "LED unregister!\n");2 y* r, g% M2 d
}8 E! q8 A' d( {! ?0 j
* U  B8 Z6 D6 y$ ^9 h' l$ E* J) I
module_init(led_platform_init);
4 H* u7 T/ w; x1 \2 B- Zmodule_exit(led_platform_exit);
' p4 F9 x" e. r$ G# V3 Y, j3 k2 g5 G. O+ o1 P: ?
MODULE_DESCRIPTION("Led platform driver");
3 t' w' K" [6 q: }) TMODULE_AUTHOR("Tronlong");- Z; ~! u1 B5 X
MODULE_LICENSE("GPL");2 g  m0 j  C5 c! u, o* E! `

: u% Z( I+ Z. J$ F1 L! T# T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-13 10:36 , Processed in 0.046704 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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