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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。9 t0 E6 F) ^6 m, v
#include <linux/init.h>- [* Z( o# D+ A9 _9 s
#include <linux/module.h>/ p9 T, j$ d' ^
#include <linux/kernel.h>2 I  k0 G6 ~9 H" |7 i8 N% U
#include <linux/types.h>% M* p. B! d. w8 X: J/ f
#include <linux/gpio.h>* E# H9 h, P; s- s
#include <linux/leds.h>
. ^  u# W, z# _' _+ M#include <linux/platform_device.h>
& h0 w" o" b8 A" p( M# L
% ~% m+ P! g9 b; L8 K5 V5 F#include <asm/mach-types.h>
7 ^, l/ Q/ F; a  P( X* Y3 {#include <asm/mach/arch.h>: I5 [5 `' e9 r; c" y6 c. W
#include <mach/da8xx.h>9 Z. t8 f1 b  u  ?8 S; b: }* k) ^
#include <mach/mux.h>9 Z/ d2 u' e' r  M7 m$ [
7 s  z' C: A5 p, X7 W( G3 P( [& U; r
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
" Q7 n$ N4 L% t1 ~#define DA850_USER_LED1        GPIO_TO_PIN(0, 5): \8 @, L7 |" k0 j9 X% f# c
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
- e9 u2 G6 m9 f5 Y% g#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)/ B$ B  @/ U7 }' ~3 E
2 ]6 T: ?6 l& D% z5 l$ d: N
/* assign the tl som board LED-GPIOs*/
6 G7 Q/ u# e9 S0 {* v6 y2 tstatic const short da850_evm_tl_user_led_pins[] = {5 G& ^4 j- ]( q3 e- R; P
        /* These pins are definition at <mach/mux.h> file */
5 a' g( m9 I+ @" G: q- `( z        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5," f+ N7 w* C  V; ^: E
        -1
% d, F4 z: ]7 d/ p};' v: c( t" l! ^2 l  T8 M

. F5 \2 L/ H3 x) b! o6 P4 F$ Pstatic struct gpio_led da850_evm_tl_leds[] = {/ ?: o8 v2 u1 j- s3 C" p8 m0 Z: I
        {
4 g$ t+ T& O# O* @3 ^$ |; |                .active_low = 0,/ i/ ]) f$ N, ?8 D' z% t$ F' \
                .gpio = DA850_USER_LED0,
: C1 u" ~8 ]! f0 H& v( h& h" I- ?7 r                .name = "user_led0",
# Y% ~' E5 @$ ~: c                .default_trigger = "default-on",
# H0 G/ G, P6 `+ x$ g9 `# C        },1 ]9 c# X& y% v2 g' _9 M" \4 v
        {
5 x  s" J. H- h1 ]                .active_low = 0,+ I% k3 {! ^7 j3 z) E
                .gpio = DA850_USER_LED1,
: u+ @- x( T' W; _# H                .name = "user_led1",9 }2 f& Z* o1 \' S. ~4 p6 T, m
                .default_trigger = "default-on",
% I& e& N9 {; W: u; x0 L        },* G1 b5 \" L# |* I8 D; j: Q
        {; d+ @! C: m% i
                .active_low = 0,8 M# T& |  O- O) c  ~
                .gpio = DA850_USER_LED2,
; _2 p$ y# J  ?! V                .name = "user_led2",
3 T  `0 u9 }, k. r                .default_trigger = "default-on",
7 N9 P. g! v: v        },% i+ i' J( N. o( x5 p4 P
        {4 o2 d/ S3 C9 K9 v4 V) E$ z7 p0 L8 _4 q
                .active_low = 0,
' L; X. G3 J* {1 [- F% d                .gpio = DA850_USER_LED3,
2 L9 H' K: U$ T  T/ t                .name = "user_led3",
3 Q  s) L5 z, B* D& P4 `                .default_trigger = "default-on",+ \  \# d$ U( |$ o
        },
9 D) g5 E" I  o+ U7 R};- L/ W' I/ C5 p/ R
6 Y; R% I& K) m; I1 l$ |, w; t5 E* z
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
7 y2 S4 M4 J2 L# s        .leds = da850_evm_tl_leds,: Q0 _! }; z3 H+ f5 M
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),/ A- j& p0 K' C. K# B8 ?3 e2 p
};5 n* w/ w/ k! G! V
& c; T- f7 N  {1 A& v
static void led_dev_release(struct device *dev)
0 t2 S2 d: N* X* p{
- Q' B) y6 i( @9 u, a};1 P' q/ i0 X- P
/ K* f  N) O- j0 Z. t
static struct platform_device da850_evm_tl_leds_device = {6 |) w( J5 O7 i5 n; P& E; o
        .name                = "leds-gpio",9 {& G+ |: k6 u  Z) ^
        .id                = 1,
5 h8 J2 e+ c3 r- I- K9 X6 ]        .dev = {# ~- G" E6 d6 P) m% ^
                .platform_data = &da850_evm_tl_leds_pdata,
$ M" \  b1 h5 |, x                .release = led_dev_release,
7 W" _+ l( ]- n' J( }% G        }1 b8 f" k5 h5 o7 \' y1 R8 N
};8 p. D" U4 N! s" E; D9 T

* f0 f  d" B5 Y* I. t9 n# gstatic int __init led_platform_init(void)
% s3 ?7 d+ S1 `. V& }; o{7 ^) E) h- l8 t
        int ret;6 {# g) t* j/ T' e4 U, `
#if 07 o) ^- g. S, M3 ^! f7 ^
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
. g1 `$ S% M$ y' [% g8 _0 H        if (ret)  Z# {5 R8 U3 V6 P: k+ D- t
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
3 B! V3 k$ x& y) ~) ~! Z& `                                "%d\n", ret);; h( g* L2 Z8 N1 m* `+ h" ]
#endif
4 Q3 l" d, b% k( j: @  X        ret = platform_device_register(&da850_evm_tl_leds_device);& [0 e. |) o' G. v; E/ M  R
        if (ret)  g: ]; Q3 z1 i1 ~' S) ^5 T: y
                pr_warning("Could not register som GPIO expander LEDS");: L; v; l7 q* K7 C# b, n
        else
8 X9 z. S. K7 L4 o. o6 u& l) a                printk(KERN_INFO "LED register sucessful!\n");* r4 g6 p: b8 e) M5 t: H

5 `5 ?% \# ]5 L* ~4 D. g        return ret;
2 E" t* O5 l; s' `5 z}
. M/ M. M) e; P' N5 I/ I6 i6 ?
+ P' u' t$ `: g, tstatic void __exit led_platform_exit(void)
3 k$ T/ l) n) t7 i  T6 f9 k3 h* Z{
" P+ s, ~% B- A        platform_device_unregister(&da850_evm_tl_leds_device);
  X  B3 q1 x  f- f# f. u, o+ P7 L: R( y  @5 S/ a% x; `
        printk(KERN_INFO "LED unregister!\n");
- v: A1 X" O: r9 M. S7 ?}
7 l7 |3 V6 V+ ~$ h( x$ H
# j2 X9 O7 k( {. ^. m- k- @module_init(led_platform_init);
: j1 `. I- B" b( K# Q0 Emodule_exit(led_platform_exit);
1 t# U5 ]' z5 ]$ y6 V7 E. `9 c. ]! W+ H5 q
MODULE_DESCRIPTION("Led platform driver");! B) O2 w9 j7 G  [8 S9 l( u
MODULE_AUTHOR("Tronlong");
6 E$ z) R7 H, C. R4 Q5 B! RMODULE_LICENSE("GPL");8 c  ^7 @. ]( T) E, U. D4 y
! ^. v  T0 y8 r3 v, T* T' t* R% l) p7 k* s
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-14 12:09 , Processed in 0.041106 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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