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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
5 t# c. \3 ?( |8 v% R#include <linux/init.h>: c8 w; g9 X6 Q7 W
#include <linux/module.h>
! s4 y3 @( y$ P% Q* o. m$ L#include <linux/kernel.h>9 s7 W1 @( l3 ^; M
#include <linux/types.h>
0 |, D  F% Q7 G" N#include <linux/gpio.h>
' }2 l3 G6 C% @. X! h#include <linux/leds.h>
9 h" \, i; S4 @#include <linux/platform_device.h>& F* C# g/ l' s: ?  e. n% h0 {3 \

/ b" b( j3 x4 s/ ?9 I8 X#include <asm/mach-types.h>' P8 b4 b/ r  h  f0 i
#include <asm/mach/arch.h>
. N8 X- m9 h+ `#include <mach/da8xx.h>
' a8 P* o0 w( n: X$ W#include <mach/mux.h># }- c4 }1 t- X1 X# k5 M

) Z- ]( \, ^6 H, X3 w4 ^#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
( j) S; a) G7 C" a( r; B$ x#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)# }) E/ ?1 `. T. X
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
) w: R" c5 t; t, g. B#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
) n3 W( r* U& {, @( F( w. J, O! s* t
& _1 |* }' V( _8 i& w0 H/* assign the tl som board LED-GPIOs*/! m% [1 E* M! E5 ^9 E7 S. J2 h0 m
static const short da850_evm_tl_user_led_pins[] = {# O2 K1 h7 F2 {
        /* These pins are definition at <mach/mux.h> file */7 `0 v6 H! q: I
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
% @3 y) d4 R, N: _5 j( v, ?$ U        -1* E7 t) _' q" p2 ~0 R
};
5 h( o, h- K5 f  _# X
, K" V6 U. N2 }+ g2 c! ^static struct gpio_led da850_evm_tl_leds[] = {% F% F/ u+ R" {/ S; j3 B
        {! ~+ W/ ]* \$ d
                .active_low = 0,5 i9 m4 u# N7 `9 N  x0 \" c
                .gpio = DA850_USER_LED0,( U8 V0 x' V9 |& s1 L0 M
                .name = "user_led0",3 V% A+ k( g) s  x
                .default_trigger = "default-on",. p( w: z: [# Q7 ^! B. m  ~* k
        },  o+ [+ }3 A' Y. e  y* m( Y
        {
9 b5 p8 t8 J* u; h& z                .active_low = 0,
( `: W, S4 Y' \7 h8 R3 z                .gpio = DA850_USER_LED1,1 g0 D0 O# d- K
                .name = "user_led1",5 u+ i$ {. z, i7 u
                .default_trigger = "default-on",
- L& E0 o" F- r7 D        },
) ]2 ?7 v: w3 p" J: ^4 o6 ~1 n1 H/ t        {) h9 j0 i( I4 _1 v/ t
                .active_low = 0,2 W" C7 s% Q* ~, `
                .gpio = DA850_USER_LED2,$ a7 g6 }% G* i9 y" c- o
                .name = "user_led2",, C: E" ]. d1 p  s2 r2 d( b) m
                .default_trigger = "default-on",) q8 f" Q, h2 z# U  u6 ]: @( M: R' R
        },* L5 L0 m4 R$ s3 ?, |/ U' g; ]$ W
        {
! B! P. t8 ^8 T6 ^* V' h# j+ J                .active_low = 0,
2 t* ^& @' s, e( `* p& ~& r. U2 B                .gpio = DA850_USER_LED3,( Y6 N+ F7 @2 L; T% v
                .name = "user_led3",
3 M/ m0 M" [$ v/ L                .default_trigger = "default-on",  l  Z: q8 R/ c, N- E5 q
        },* Z. S, C. H" a9 V8 Q2 l- C
};+ N2 J7 @' q) d) z4 M

3 i+ n; ^: U& g2 Y; v9 M: \: L/ jstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
( I: Z; `# [  X        .leds = da850_evm_tl_leds,
7 I. _; F% P2 A4 W- D, N# m* u        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),/ x) C; Y  O6 C
};
% q  h. m9 G) u# Z4 x  @. E3 F. P! Q% C+ ^: j
static void led_dev_release(struct device *dev)
" J! T; c' y6 s4 v7 T, k8 K{
* d, Q7 z, l$ i2 X& g};
* k: }/ d( A2 v* A, O: {2 N: E; Q" E6 _- ?, N/ Z
static struct platform_device da850_evm_tl_leds_device = {
5 q' ^2 D4 ]- Y& U0 W        .name                = "leds-gpio",, N) l4 A! l) n- x; H# _+ |: A
        .id                = 1,( u, D! ^$ Z3 U& J$ `) K# g
        .dev = {
6 r4 i& |: ]0 o) }2 S                .platform_data = &da850_evm_tl_leds_pdata,
/ p7 P+ W2 Q2 n, k7 j# O                .release = led_dev_release,1 x$ F/ y- s' K0 \
        }
, L, m' D7 L/ K4 H& f};6 a$ x; W, ~9 p9 e

, B' j3 U' ]( h5 g0 rstatic int __init led_platform_init(void)
( M7 |+ H7 V1 f5 E3 p+ p{
, ~" v& a" k( {        int ret;
1 e; [4 U" a1 j) Q% ?7 |' e#if 0# |9 A9 X' V; ?" G
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
4 h5 b4 m& C- |        if (ret)
  ?. K- \; b# V) o2 X9 L; E" [                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
6 g& K6 v9 E: u0 d7 {                                "%d\n", ret);
( t: k6 I2 E# m- W3 Z% e#endif
1 c$ P, D, w6 d& i" @8 A, D        ret = platform_device_register(&da850_evm_tl_leds_device);
- }# m. {; C, P        if (ret)8 N$ x: ^/ H* E  n
                pr_warning("Could not register som GPIO expander LEDS");  I/ }* X* u; ~6 K# y
        else
) B* c# a3 T6 k                printk(KERN_INFO "LED register sucessful!\n");
  p  a0 a2 J: `; @  F  ]! u' o1 G0 \2 d  W7 b0 ^# X
        return ret;
* t5 {' ^/ y' n0 F+ o$ m) Y}; B5 ^( g( B& R2 w

% {& v  S% k! {+ J  T+ Qstatic void __exit led_platform_exit(void)9 M% g  P* V( a+ K; p1 t- ?( r
{: s5 H5 U( ?2 A
        platform_device_unregister(&da850_evm_tl_leds_device);4 ~+ m# Q7 D( ~# d+ [
) W6 @2 X' z6 M8 t6 \
        printk(KERN_INFO "LED unregister!\n");
8 s, p, M  ?# ^. U! J! I$ L& J* ^}
6 i  g1 ^8 L5 h) |! J3 A  K
. z- I. B' I* S, J% P  C9 i5 z2 E. Imodule_init(led_platform_init);
% d9 j6 m# ]" s) Y& `- `0 |module_exit(led_platform_exit);) j* ^, t5 ^% Q
* Y2 \  o% W) m2 q4 N* K
MODULE_DESCRIPTION("Led platform driver");
% H3 m9 p, h& [7 o6 z; I9 ^MODULE_AUTHOR("Tronlong");
, q# D+ U  c) M. ]) OMODULE_LICENSE("GPL");. p& s$ T0 O- r& c
, d( {" {- F/ U, K$ |1 M1 r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-14 10:10 , Processed in 0.042408 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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