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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
% @; l3 B$ w' @2 T+ D6 i#include <linux/init.h>
! `/ v& ^; n0 X- s3 M) k#include <linux/module.h>
& N1 Y; m3 i0 m  ~+ @5 |+ I#include <linux/kernel.h>
; ~& U. o! F3 G, K9 m#include <linux/types.h>4 F: T# Z3 c( _# D, T. m
#include <linux/gpio.h>
- ^! q; G& M- X#include <linux/leds.h>/ r" u4 M' r. R8 n" p$ Y3 u
#include <linux/platform_device.h>8 H; M+ W; q8 y. G+ J/ m9 @
! X, f8 h. z2 _) J: [
#include <asm/mach-types.h>
" v, I  P: Z9 [3 |#include <asm/mach/arch.h>
$ t0 ^9 j  z& n' P: Y#include <mach/da8xx.h>
( }* Z& }. P: g+ I#include <mach/mux.h>' y2 ~" n/ i- x0 _1 F8 ^; e/ m+ A

# v  M- `9 |2 H# @. d0 m" U#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)! m& m! Q3 R5 u4 U( s2 _3 i! [" W
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
7 g5 F% F7 f* L#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)- e- m- C8 E3 T; o* Q: }. A
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
9 A2 y/ x& g5 b8 p" o
2 x1 V  A6 c" Z/* assign the tl som board LED-GPIOs*/
+ U6 W  g: U1 ?static const short da850_evm_tl_user_led_pins[] = {
# U/ R; K  s9 E' E- ]* e        /* These pins are definition at <mach/mux.h> file */$ Q8 `& P: F& @% S0 C
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,- R$ ?, X- Q! k
        -1
# H' M  O9 e: l( @, c% j};/ i: d0 G7 o0 h1 U5 _  s# u
8 y: y- N. n4 t- T! M: M& [
static struct gpio_led da850_evm_tl_leds[] = {  @3 P: d# y0 D+ \* x9 ]! z
        {
# f" a8 m$ ?8 j+ q* {* x4 k                .active_low = 0,# o  `& s2 e8 l+ i
                .gpio = DA850_USER_LED0,9 }: A) r( K  i- m
                .name = "user_led0",
/ t6 u+ P* B6 E6 \& t- C. J                .default_trigger = "default-on",. h7 K& Y. N9 q2 s
        },
6 C* Z6 `; R: p( N  A3 S        {
8 Z. Z- Y! y  l* q- B                .active_low = 0,
7 c! N6 n9 t/ a! R0 A                .gpio = DA850_USER_LED1,
6 ~* v% u- v9 O2 k3 F" c                .name = "user_led1",
' w8 s% i% ]9 D# E" _4 T) ^                .default_trigger = "default-on",+ O( N: c, P8 x
        },, g6 ^! G# N5 K0 p$ b" \
        {
+ G2 o4 O4 a0 o4 A& ~' ^. U( q3 _* X3 X                .active_low = 0,
' T  o) c5 I8 b3 h                .gpio = DA850_USER_LED2,
. w# J# b$ w) _/ }& c  V                .name = "user_led2",
2 s' B# H* n: R1 ?# F$ x& s2 c, _                .default_trigger = "default-on",: ^+ ~" g4 P7 i$ i9 H
        },0 [" Q3 \4 v; @5 h3 N3 D
        {/ W+ F( {8 f1 h/ q# z  n) |" r
                .active_low = 0,
5 P$ b( e8 h1 R/ e, w                .gpio = DA850_USER_LED3,
% s* o2 p* t3 i( `2 Z  w* c                .name = "user_led3",
" _; p% o& N, O. X4 L# j                .default_trigger = "default-on",
# M0 w% H( R; c% [        },
: s' `( Y2 c$ @6 e( Z% `. p};4 O6 G% H% H- }
4 n& @! E! h/ y6 p# q0 T; }
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {/ t3 O/ K& p9 B3 U; J9 n9 l3 H
        .leds = da850_evm_tl_leds,
3 S" r9 D3 M# u' W, }        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),5 R! F. i7 m, N" W/ a
};# `7 G8 \5 G! O( y
# ~  Q( @2 K' T' Q9 A9 J8 x! N
static void led_dev_release(struct device *dev)
( P% b/ M) M2 D{
$ U  e+ a$ ?1 J, e7 f, e};4 x6 N1 _1 F5 [* n  g
6 `4 X9 I3 z7 |  @
static struct platform_device da850_evm_tl_leds_device = {
& P# s0 N, h5 w! M        .name                = "leds-gpio",
0 j7 V" ~0 H0 q        .id                = 1,! `8 p! P2 g' Q
        .dev = {# F* {) C  t6 [
                .platform_data = &da850_evm_tl_leds_pdata,3 Y' ?% K0 b- [; T0 A" {# L" `
                .release = led_dev_release,$ u8 @4 @* z( \) Z
        }, n, K& ^6 z: Z1 O$ G  B( F
};
. K% r: I" L3 q# F/ [. H/ u& l: c- \! [, h% d3 L  I
static int __init led_platform_init(void)
9 G7 v# @, h; Y$ q  p: R, L9 ?{. [; J$ }5 R- i' t/ @" ]
        int ret;
& Z6 d* m  `+ w2 S( _5 T1 D#if 0
1 m+ S7 E% |7 |) [" b9 a+ r; }        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);, }6 J. H5 g4 b5 j
        if (ret)
5 R3 Y* F% u/ b1 U6 y                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
$ b+ M/ q0 e& Y2 ?0 c* r                                "%d\n", ret);0 l/ _) M9 D, z" ^$ A' y: z. W
#endif
0 W6 Y$ ]2 s, B+ Z; H: s& Q4 k) K: \        ret = platform_device_register(&da850_evm_tl_leds_device);1 D, j6 }3 j3 R0 N9 W8 P# s5 a
        if (ret)
; R4 L6 P- c0 d                pr_warning("Could not register som GPIO expander LEDS");
5 c  `6 A3 [# u. {        else2 K+ n- q$ j6 d
                printk(KERN_INFO "LED register sucessful!\n");5 i1 n: Y- A5 e; [6 c( C

, g% y+ D) u6 T+ ]( G( F- @        return ret;
" ^6 C! [' r) P- H& v# L% g}5 ]% Z; g- ]* E; V7 V

7 a1 u. X4 m/ U: `. \$ p# wstatic void __exit led_platform_exit(void)
  l: W% |. ^0 }) ^4 m. g$ M+ a{3 ]- M2 o# p6 k4 b6 N; f! e* d
        platform_device_unregister(&da850_evm_tl_leds_device);: j5 y: b* e% b8 H( l: u2 X3 Y: L1 B
$ f8 d$ X8 g7 G: U. _( c- u* G
        printk(KERN_INFO "LED unregister!\n");$ P4 f. i2 e. ]3 Z- C
}: D2 P# ]/ f- G" g9 E+ O0 F9 N
2 i# Q# {0 W3 L, `8 S8 v
module_init(led_platform_init);( p- |  o, K7 X4 s/ P9 C
module_exit(led_platform_exit);
! Z2 E( P7 h" P6 f8 p7 I2 |. |2 a8 _4 u
MODULE_DESCRIPTION("Led platform driver");4 D, {4 U+ n) H
MODULE_AUTHOR("Tronlong");
9 _3 Q( P2 y5 h# g7 jMODULE_LICENSE("GPL");; |9 N% U! f- A/ n# \+ i

. }9 J% M6 H0 v# a8 F' g7 ^
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-19 22:11 , Processed in 0.037638 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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